1
Los Mecanismos del Control de Copia
AI037Lesson 16
00:00

Dominar el ciclo de vida de un objeto C++ es tener control sobre los mecanismos mismos de existencia dentro del montón y pila. El control de copia define cómo una clase gestiona su ciclo de vida mediante dos operaciones: el constructor de copia y el operador de asignación por copia.

1. Inicialización frente a Asignación

Inicialización directa (por ejemplo, string puntos(10, '.')) invoca directamente un constructor. Sin embargo, inicialización por copia (string s2 = puntos) depende del constructor de copia. A diferencia de la inicialización, asignación (trans = acum) sobrescribe un objeto existente usando operador=. Una restricción crítica: el parámetro del constructor de copia debe ser una referencia (const Foo&); de lo contrario, pasar un argumento por valor desencadenaría un bucle recursivo infinito de llamadas de copia.

Objeto Origen[Datos A]Objeto Destino[Datos A]Copia Miembro a MiembroConstructor de Copia / operador=

2. El Papel de la Síntesis

Si no defines estos miembros, el compilador proporciona versiones sintetizadas que realizan copias miembro a miembro. Ten cuidado: aunque son suficientes para tipos simples, a menudo fallan en clases que gestionan memoria dinámica, provocando punteros colgantes o liberaciones dobles.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>